home *** CD-ROM | disk | FTP | other *** search
- ================================================================
- = 〔ソ フ ト名〕 .COM ファイル パックユーティリティ 「ComPack」 第1.00版 =
- = 〔作 者 名〕 しんき =
- = 〔対応 機種〕 MS-DOS Ver 3.xx =
- = 〔動作 確認〕 FM TOWNS =
- = 〔完 成 日〕 1992.02.15 =
- = 〔開発 環境〕 Power C + 386|asm =
- ================================================================
-
- 【はじめに】
- 手頃で便利な「.COM」ファイル。けっこう,便利なプログラムってたくさんありま
- すよね。で,その中には「200バイト」とか「100バイト」,さらには「9バイト」な
- んていう小さい「.COM」が割とあるもんです。小さくて便利だから,「いいや,全部
- ハードディスクの中に放り込んじゃえっ!!」なんて言ってる人……けっこういるんじ
- ゃないかなぁ(少なくとも私はその一人)。
- ・ ・ ・ ・ ・ ・ ・ ・
- ところで,ハードディスクにかかわらず,ディスクにはクラスタっていう概念があ
- るのをご存じでしょうか。このクラスタっていうのは,例えるならば原稿用紙のよう
- なものです。
- よく,夏休みの宿題なんかで,「原稿用紙3枚」なんていう感想文を書かされたも
- のですが,それは,「2枚と1行」でも,「2枚と10行」でも「原稿用紙3枚」に違
- いないんですよね。で,宿題キライだから,「2枚と1行」で終わらせた人なんかけ
- っこう多いんじゃないかな(私だけだって??)。
- ここまで話したらちょっと話が見えてきたかな? 原稿用紙にあたるこの「クラス
- タ」,データを1文字書こうが,20文字書こうが,「1クラスタ」必要なのには変わ
- りがないということです。つまり,1文字だけ書いたときは,クラスタに無駄がたく
- さんできてしまうわけですね。
- フロッピィディスクみたいに比較的記憶容量が少ないメディアでは,「1クラスタ
- =1024バイト」とかなので,最悪でも「1023バイト」の無駄で済みます。でも,ちょ
- っと容量の大きいハードディスクなんかだと,「1クラスタ=4096バイト」とか「1
- クラスタ=16384バイト」とか平気で取られちゃうんですよね。
- ・ ・ ・ ・ ・ ・ ・ ・
- で,その「無駄」をなんとかなくすことができないかなぁ……とある日考えました
- (え? けち臭い??)。その解決策がこれです。
-
- 「複数COMファイルを1つのプログラムにまとめてしまおう」
-
- ……とまぁ,いろいろともっともらしいことを書いたわけですが,まぁこれは1つ
- の「たてまえ」ってヤツで,実際は「1つにまとまったらカッコ良いじゃん」てこと
- で作り始めました。では,作り始めた動機を紹介したところで,実際に詳しい使い方
- なんかに入りたいと思います。
-
- 【使用方法】
- 機能は,「プログラムをまとめる」と「まとめたプログラムの中身を見る」しかな
- いので,実際に例を用いて説明していきます。
- カレントディレクトリは次のようになっているものと考えてください。なお,以下
- に表示されているファイルは,今回収録されているものとは,若干,日付やサイズが
- 異なると思いますが,あまり気にしないでください。
- ----------------------------------------------------------------------------
- ドライブ H: のディスクのボリュームラベルは COMMAND
- ディレクトリは H:\COMPACK
-
- . <DIR> 92-01-19 4:45
- .. <DIR> 92-01-19 4:45
- COMPACK COM 24036 92-01-16 13:15
- PROG1 COM 11 91-02-18 4:00
- PROG2 COM 33 91-03-23 3:57
- PROG3 COM 33 92-01-19 4:50
- PROG4 COM 81 92-01-19 4:46
- PROG5 COM 190 92-01-19 4:47
- PROG6 COM 909 91-03-07 10:46
- PROG7 COM 284 92-01-19 4:46
- PROG8 COM 164 92-01-19 4:46
- PROG9 COM 484 92-01-19 4:46
- 12 個のファイルがあります.
- 5616096 バイトが使用可能です.
- -----------------------------------------------------------
-
-
- ■ プログラムをまとめる(新規作成) ■
-
- ここで,まず「prog1.com」~「prog7.com」をまとめたいと思います。
-
- > compack all prog1 prog2 prog3 prog4 prog5 prog6 prog7
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- 実行結果---------------
- 「all.com」に「prog1.com」を追加します
- 「all.com」に「prog2.com」を追加します
- 「all.com」に「prog3.com」を追加します
- 「all.com」に「prog4.com」を追加します
- 「all.com」に「prog5.com」を追加します
- 「all.com」に「prog6.com」を追加します
- 「all.com」に「prog7.com」を追加します
- -------------------
-
-
- これで,パックされたプログラム「all.com」が作成されました。
- このように実行すると,「all.com」というファイルに,カレントにある,「prog1.
- com」~「prog7.com」を連結するわけです。
-
-
- ■ まとめたプログラムの中身を見る ■
-
- ちょっと,中身を確認してみましょう。実際には次のように実行します。
-
- > compack all
- ^^^^^^^^^^^
- 実行結果---------------------
- ベースファイル 「all.com」 の一覧
-
- コマンド名 サイズ
- --------------- -----------
- ComPack本体 $0231
- PROG1 $000b
- PROG2 $0021
- PROG3 $0021
- PROG4 $0051
- PROG5 $00be
- PROG6 $038d
- PROG7 $011c
- --------------- -----------
- 合計 $08a6 (残り $5759 バイト)
-
- -------------------------
-
- どうやら,無事にパックされたようですね。因みに右下に表示されている残りバイ
- トというのは,その1つのベースファイルに取り込めるCOMのサイズを意味します。
- 上記の例は,つまりあと22361バイト($5759バイト)まで詰め込むことが可能だとい
- うことを意味しているわけです。
-
- ところで,このパックされたコマンドを調べるのに,いちいち「ComPack」を呼び
- 出すのは面倒ですよね。というわけで,次のような確認方法もあります。
-
- > ALL
- ^^^
- 実行結果--------------------------------
- --------- Listing of basefile ---------
- PROG1 PROG2 PROG3 PROG4 PROG5 PROG6 PROG7
- ------------------------------------
-
- わかりますね。つまり,パックしたプログラム(all.com)を,パラメータなしで
- 起動すると,パックされたプログラム(prog1~7)が表示されるわけです。
-
- では,実際にパックされたプログラムを呼び出してみましょう。
-
- > all prog1 12345 67890
- ^^^^^^^^^^^^^^^^^^^^^
- これは,「prog1 12345 67890」を実行したのと同じことになります。つまり実行
- 方法は,先頭にパックしたプログラム名(all)が付くというだけです。
-
-
- ■ プログラムをまとめる(追加) ■
-
- さて,動くことも確認したし,さらに「prog8.com」「prog9.com」を追加したいと
- 思います。
-
- > compack all prog8 prog9
- ^^^^^^^^^^^^^^^^^^^^^^^
- 実行結果---------------
- 「all.com」に「prog8.com」を追加します
- 「all.com」に「prog9.com」を追加します
- -------------------
-
- これで追加されました。つまり,先程と同じ要領で行えばいいわけですね。では,
- さっそく確認してみましょう。
-
- > all
- ^^^
- 実行結果--------------------------------
- --------- Listing of basefile ---------
- PROG1 PROG2 PROG3 PROG4 PROG5 PROG6 PROG7 PROG8 PROG9
- ------------------------------------
-
- なるほど,確かに追加されてますね。
-
- と,このように追加を行うわけですが,先ほども説明した「残りバイト」には注意
- しましょう(別に,壊れるわけじゃないですが ^^;)。
- なお,本バージョンでは,全体で24Kのファイルまで作成可能となっています。
-
- 【あとがき】
- ここまでお付き合いいただいて,どうもありがとうございました。
- とりあえず,ここまで読み進んでくれた方は,このプログラムの価値・そして使い
- 方を理解することができたのではないかと思います。
- このプログラムを「DIET」などの圧縮プログラムと併用すれば,大いに容量の節約
- に役に立つことと思います。その際,一度圧縮されたプログラムは元に戻さない限り,
- ComPackでのファイル追加はできませんので,ご注意ください。
- まだ,本バージョンでは至らないところもいくつかあると思いますが,何か気の付
- くところがあれば,どんどんご指摘してください。できる限り対処したいと思います。
-
- 【今後の課題】
- 戒めのためにも,今後の課題をあげておきたいと思います。ちょっと,「圧縮」や
- 「.EXE対応」は難しいかもしれませんが(サイズ的にも),せめて1~3番あた
- りは実現させたいと思います。
-
- 1. 取り込んだファイルの削除/復元
- 2. 取り込みファイル指定のワイルドカード対応
- 3. 取り込み元パスの省略化(環境変数PATH参照)
- 4. 取り込んだファイルの圧縮
- 5. .EXEへの対応
-
- 【使用条件】
- 本ソフトは,フリーソフトウェアです。このプログラムを運用したことによる事故,
- 障害などにあたって,作者は何の責任ももたないこととします。つまり,このプログ
- ラム使用の際に生じた一切の問題の責任は自分でとることが前提であるということで
- す。つまり,「こんなはずじゃなかった」と作者に泣きついてきても,当方は一切関
- 知しないということです。なお,本プログラムを用いてパックしたプログラムは,自
- 由に配布することができます。
-
- 【配布条件】
- 基本的に配布は自由です。転載は,作者の許可を得ることなく行ってかまいません
- が,可能ならばその旨連絡いただければ幸いです(事後報告だって嬉しいよん)。
-
- 【パソコン通信ネットワーク上での連絡先】
- バグ・ご意見・ご感想は,今後の参考にさせて戴きますので,お気軽にお近くのし
- んきまで連絡ください。
-
- NIFTY-Serve GDH03575 森 貴史(しんき)
- J&P-Hotline JH114447 しんき
- JATIC町田 J81 MORI
- 笑ゥBBS WRW055 しんき
- CLUB DA2 DADA046 しんき
- Cafe Paradise CFP00036 しんき
-